Spill Code Placement for SIMD Machines
نویسندگان
چکیده
The Single Instruction, Multiple Data (SIMD) execution model has been receiving renewed attention recently. This awareness stems from the rise of graphics processing units (GPUs) as a powerful alternative for parallel computing. Many compiler optimizations have been recently proposed for this hardware, but register allocation is a field yet to be explored. In this context, this paper describes a register spiller for SIMD machines that capitalizes on the opportunity to share identical data between threads. It provides two different benefits: first, it uses less memory, as more spilled values are shared among threads. Second, it improves the access times to spilled values. We have implemented our proposed allocator in the Ocelot open source compiler, and have been able to speedup the code produced by this framework by 21%. Although we have designed our algorithm on top of a linear scan register allocator, we claim that our ideas can be easily adapted to fit the necessities of other register allocators.
منابع مشابه
A Comparative Study of the Programmability of a Signal Processing Application in an MIMD and an SIMD Multiprocessor
In this report, we address the issues of compilation and execution of a functional program, SISAL (Streams and Iterations in a Single Assignment Language), on the MP-1TM SIMD (Single Instructionstream Multiple Data-stream) parallel machine. SISAL has been successful on many shared memory multiprocessors (SMM) as well as sequential machines. However, the compiler has not been available for distr...
متن کاملRegister allocation and spilling using the expected distance heuristic
The primary goal of the register allocation phase in a compiler is to minimize register spills to memory. Spill decisions by the allocator are often made based on the costs of spilling a virtual register and, therefore, on an assumed placement of spill instructions. However, because most allocators make these decisions incrementally, placement opportunities can change as allocation proceeds, ca...
متن کاملDevelopment of a parallel molecular dynamics code on SIMD computers: Algorithm for use of pair list criterion
In recent years several implementations of molecular dynamics Ž . Ž . MD codes have been reported on multiple instruction multiple data MIMD machines. However, very few implementations of MD codes on single instruction Ž . multiple data SIMD machines have been reported. The difficulty in using pair lists of nonbonded interactions is the major problem with MD codes for SIMD machines, such that, ...
متن کاملI/O and computation overlap on SIMD systolic arrays
A mechanism for overlapped I/O management operations and computation on a simd linear systolic array is presented. This mechanism is based on two synchronized controllers allowing a speedup factor of 2 over simd machines without overlapped facility. Code generation is achieved using the C-stolic language, specifically designed for the architectural features of overlapped simd systolic arrays. R...
متن کاملI/o and Computation Overlap on Simd Systolic Arrays Dominique Lavenier, Frédéric Raimbault, Patrice Frison
A mechanism for overlapped I/O management operations and computation on a simd linear systolic array is presented. This mechanism is based on two synchronized controllers allowing a speedup factor of 2 over simd machines without overlapped facility. Code generation is achieved using the C-stolic language, specifically designed for the architectural features of overlapped simd systolic arrays. (...
متن کامل